package modeloCarmenSanDiego.rangoStrategy;

import modeloCarmenSanDiego.ValorDeObjeto;
import modeloCarmenSanDiego.pistas.DificultadDePista;

public abstract class RangoStrategy {
	
	protected int velocidad;
	protected DificultadDePista dificultad;
	protected ValorDeObjeto valorDeObjetoRobado;
	protected int numeroMaximoDeArrestosAntesDeAscenso;
	protected RangoStrategy rangoSiguiente;
		
	public int velocidadDeViaje(){
		return velocidad;
	}
	
	public DificultadDePista getDificultadDePista(){
		return dificultad;
	}
	
	public ValorDeObjeto getValorDeObjeto(){
		return valorDeObjetoRobado;
	}

	public RangoStrategy actualizarRango(int cantidadArrestos) {
		if(cantidadArrestos >= this.numeroMaximoDeArrestosAntesDeAscenso){
			return rangoSiguiente.actualizarRango(cantidadArrestos); //la recursion permite saltar de rango
		}
		return this;
	}
	
}
